package com.sgb.kjwl.model.api;

import com.sgb.kjwl.model.entity.PickDeviceEntity2;
import com.sgb.kjwl.model.entity.PickLabourEntity;
import com.sgb.kjwl.model.entity.PickPackersEntity;
import com.swgk.core.base.model.factory.BaseUrlInterceptor;
import com.swgk.core.util.PickSelectEntity;
import com.sgb.kjwl.model.entity.pick.TenderDetailEntity3;
import com.sgb.kjwl.model.entity.pick.TenderDictEntity3;
import com.sgb.kjwl.model.entity.pick.TenderInfoBasicEntity3;
import com.sgb.kjwl.model.entity.supplier3.DictEntity3;
import com.swgk.core.base.model.entity.ListResponse;
import com.swgk.core.base.model.entity.BaseEntity;

import java.util.List;
import java.util.Map;

import io.reactivex.Observable;
import retrofit2.http.Body;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;

/**
 * Description: 招采模块相关接口
 * Author zhengkewen
 * Time 2019/4/2
 */
public interface PickInterface {
    /*** 招采接口开始 zkw ***/

    //招采机械设备列表
    @POST("v1/app/recruitNew/equipmentList")
    Observable<BaseEntity<ListResponse<List<PickDeviceEntity2>>>> getPickDeviceList(@Body Map map);

    //招采劳务分类列表
    @POST("v1/app/recruitNew/laborSubcontract")
    Observable<BaseEntity<ListResponse<List<PickLabourEntity>>>> getPickLaborList(@Body Map map);

    //招采工程分类列表
    @POST("v1/app/recruitNew/engineSubcontract")
    Observable<BaseEntity<ListResponse<List<PickPackersEntity>>>> getPickPackersList(@Body Map map);

    //招采工程分类类别
    @POST("v1/app/recruitNew/engineeringCategory")
    Observable<BaseEntity<List<PickSelectEntity>>> getPickPackersType();

    //招采招标详情   招标详情报名时间、投标时间、定标时间、定标时间修改
    @Headers({BaseUrlInterceptor.HEADERS_URL_ZC, "tokenType:pc"})
    @FormUrlEncoded
    @POST("v3/app/recruit/tenderDetail")
    Observable<BaseEntity<TenderDetailEntity3<TenderInfoBasicEntity3<TenderDictEntity3>>>> getPickBidDetail(@Body Map map);

    //招采需求查询分类
    @POST("v3/app/recruit/demandList")
    Observable<BaseEntity<List<DictEntity3>>> getPickRequireType();

    //招采需求查询工程类型
    @POST("v1/app/recruitNew/engineeringCategory")
    Observable<BaseEntity<List<DictEntity3>>> getPickEngineeringType();

    //招采需求查询项目规模
    @POST("v1/app/recruitNew/getProjectScaleV1")
    Observable<BaseEntity<List<DictEntity3>>> getPickScale(@Query("type") String type);

    //招采需求查询材料类型
    @POST("v1/app/material/firstCategory")
    Observable<BaseEntity<List<DictEntity3>>> getPickMaterialType();

    /*** 招采接口结束 zkw ***/
}

